﻿using CAD.DAL;
using CAD.DAL.pagoscompraDSTableAdapters;
using CAD.DTO;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace CAD.BLL
{
    public class pagoscompraBLL
    {
        private static pagoCompra rowToDto(pagoscompraDS.pagocompra_SelectByCompraRow row)
        {
            pagoCompra objCliente = new pagoCompra();
            objCliente.Estado = row.estado;
            objCliente.Fechapago = row.fechapago;
            objCliente.Fecharegistro = row.fecharegistro;
            objCliente.Id = row.id;
            objCliente.Idcompra = row.idcompra;
            objCliente.Idcuentacaja = row.idcuentacaja;
            objCliente.Idregistrador = row.idregistrador;
            objCliente.Idvendendor = row.idvendendor;
            objCliente.Monto = row.monto;
            objCliente.Nrorecibo = row.nrorecibo;
            objCliente.Tipopago = row.tipopago;
            return objCliente;
        }
        public static List<pagoCompra> SelectByCompra(int id)
        {
            pagocompra_SelectByCompraTableAdapter adapter = new pagocompra_SelectByCompraTableAdapter();
            pagoscompraDS.pagocompra_SelectByCompraDataTable dtCliente = adapter.SelectByCompra(id);
            List<pagoCompra> LISTAobjCliente = new List<pagoCompra>();
            foreach (pagoscompraDS.pagocompra_SelectByCompraRow row in dtCliente)
            {
                pagoCompra objCliente = rowToDto(row);
                LISTAobjCliente.Add(objCliente);
            }
            return LISTAobjCliente;
        }
        public static DTO.pagoCompra SelectByID(int id)
        {
            pagocompra_SelectByCompraTableAdapter adapter = new pagocompra_SelectByCompraTableAdapter();
            pagoscompraDS.pagocompra_SelectByCompraDataTable dtCliente = adapter.SelecByID(id);
            DTO.pagoCompra objCliente;
            try
            {
                objCliente = rowToDto(dtCliente[0]);
            }
            catch (Exception)
            {
                objCliente = null;
            }
            return objCliente;
        }
        public static int insertar(int idcompra, int idvendedor, int idregistrador, string tipopago, int idcuentacaja, string nrorecibo, double monto, DateTime fechapago, DateTime fecharegistro,string gloza)
        {
            int? estudianteId = 0;
            pagocompra_SelectByCompraTableAdapter adapter = new pagocompra_SelectByCompraTableAdapter();
            adapter.insert(ref estudianteId, idcompra, idvendedor, idregistrador, tipopago, idcuentacaja, nrorecibo, monto, fechapago, fecharegistro, true, gloza);
            int id = (int)estudianteId;
            return id;
        }
        public static void anular(int id)
        {
            pagocompra_SelectByCompraTableAdapter adapter = new pagocompra_SelectByCompraTableAdapter();
            adapter.anular(false,id);
        }
        public static double montoPagosPorCompra(int idcompra)
        {
            double monto = 0;
            pagocompra_SelectByCompraTableAdapter adapter = new pagocompra_SelectByCompraTableAdapter();
          //  monto = (double)adapter.montoPagosPorCompra(idcompra);
            try {
               monto= (double)adapter.montoPagosPorCompra(idcompra);
            }
            catch(Exception ex){
            }
            return monto;
        }
    }
}
